                              ===========================                             
                              R E L E A S E    N O T E S
                              ===========================

                         QLogic 57710 NC-SI Firmware

                      Copyright (c) 2015 QLogic Corporation
                                 All rights reserved.


Known issues
============

Reporting of controller statistics are not accurate in realtime.  It is assume these are used for non real time offline testing purposes.

History
=======

Version 2.0.7 Sept 29, 2010
================================
			
	Fixes:
	-------------

	1.	Problem:	CQ46152 - Some MAC to BIOS mac get rejected.

		Cause:	 	Incorrect logic for MAC validation.

		Fix:		A bit-wise AND needs to be replaced with a bit-wise OR.

	2.	Problem:	CQ50034 - ediag D7 TOE test failure.

		Cause:	 	FW accidentally access registers that doesn't exist in older chip.

		Fix:		Check Chip ID before access newer registers.

Version 2.0.6 Feb 1, 2010
================================

	Fixes:
	------

	1)	Problem: 		CQ 45190 - 57711E:NCSI filter configurations need to be preserved upon load/unload.
		Cause:			Mac filtering rule is cleared upon driver load/unload.
		Fix:			Preserve Mac filter rule register upon driver load/unload.



Version 2.0.5 Dec 23, 2009
================================

	Enhancements:
	-------------

	1.	Description:	Added support for DCC coexisting with NCSI MFW by
							1) allow DCC to use 4th MAC address per channel, which means not clearing or setting 
							2) invoke DCC packet handling routine if unicast packet detected on 4th MAC filter
		Impact:			BMC has effective use of only 3 MAC address filters per channel

	2.	Description:	Removed support for BMC filtering on PRI subfield of VLAN.
		Impact:			PRI field becomes a DC in regard to VLAN filtering

	3.	Description:	Added temporary support to set all bits in a host packet forwarding register to avoid driver/bc respin.
		Impact:			None to MFW or BC, but should ensure all packets are subjected to driver filtering.  Will be migrated out 
						of MFW following T5.2 to BC or drivers.

Version 2.0.4 June 10, 2009
================================

	Fixes:
	------

	1)	Problem: 		CQ 40923-MCP hung on driver load/unload test.
		Cause:			NCSI internal data structure growth caused overflow in shared memory corrupting adjacent values.
		Fix:			Reduced size of data structure, added overflow sanity check on FW load.

Version 2.0.3 May 14, 2009
================================

	Fixes:
 	------

	1.	Problem:		CQ41168-Channel Reset command not clearing established configuration.
		Cause:			Channel Reset processing not fully implemented in Everest after code reorg.
		Fix:			Add remaining glue code for it to work.

	2.	Problem:		CQ40876-Broadcast Filter Packet of 0F enables pass through of DHCPv6 relay and server multicast packets.
		Cause:			Existing DHCP HW filter includes DHCPv6 pkts that are IPv6 MC, not BC.
		Fix:			Check incoming DHCP and MC packets for specific cases

	3.	Problem:		CQ41041-NCSI command Get Controller Packet Stastics response contains no statistics data.
		Cause:			Field deleted from shared data struct causing address positions to shift 
		Fix:			Build with modified file

	4.	Problem:		CQ40997-Intermittent NCSI connection failure with EFI 5.0.5.
		Cause:			NIG drain not being set correctly by BC and driver.
		Fix:			Set NIG drain correctly by driver.

	5.	Problem:		CQ40869-Get link status response, and Link changed AEN, reporting incorrect link speed value for 10Gb.
		Cause:			Link status word producers using UMP value for reporting 10Gb links.
		Fix:			Remap value to correct NCSI 10Gb value.

	Enhancements:
	-------------

	1.	Description:	Added missing support for reporting OEM specific link speeds.
		Impact:			2.5Gb links may now be reported

	2.	Description:	Modified mcp_fio.h to reflect current usage of mcpf_mcpq_bits_status register, and
						the mcp ftq structure to support both E1 and E1.5 concurrently.
		Impact:			Supports correct operation of broadcast and multicast filtering and passthrough for
						both IPv4 and IPv6 packets.

Version 2.0.2 May 6, 2009
================================

	Fixes:
 	------

	1. 	Problem:	CQ 40882-PQA reports MBA disappears after reboot during iSCSI boot process.
	2. 	Problem:	CQ 40884-E1.0: NCSI: 0x0_evbdx!lm_dmae_post_command+1d5 updating driver w/NCSI enabled
	3.	Problem:	CQ 40925-Get Controller Packet Statistic Command causes NCSI fw to become unresponsive.

		Cause:		NCSI MFW and Bootcode are not in synch for the method to use to for allocating
					buffers in spad for statistics reporting by the drivers.  The net result is 
					stack corruption.

		Fix:	   	Selected new approach to allocate buffers statically within NCSI FW image space.


	4.	Problem:	port stx buffer address being posted by NCSI FW was not	32-bit aligned.

		Cause:		Unknown pointer issue.

		Fix:		Altered approach to allocating buffers, and problem was resolved.

	5.	Problem:	Port stx buffer addresses posted in shmem locations not mapped to host view of
					MCP scratchpad.

Version 2.0.1 April 27, 2009
================================

	Enhancements:
	-------------

	1.	Description:	Added support for 4th MAC address per channel that is present on 57711.

		Impact:			On 57711 and later chips, the BMC can now use 4 MAC addresses per channel
						instead of 3 available on 57710.				
		
	2.	Description:	Added support for IPv6 specific pass through rule added in 57711.

		Impact:			Pass through of IPv6 specifc MC packets while MC filtering is
						in effect is now available on 57711 chips.

	3.	Description:	Added support for NVRAM based package ID specification.

		Impact:			The package ID may now be set either through NVRAM or SPIO pins.  Default
						remains SPIO pin.

	4.	Description:	Added support for reporting L2 statistics in 57711 multi function configurations.

		Impact:			Port specific L2 statistics are now available when MF mode is enabled.

	5. 	Description:	Modified timeslice and delay code to support MCP at 200MHz instead of 300MHz.

		Impact:			Time slice and delay calculations are now assuming 200Mhz speed on Everest MCP.


Version 2.0.0 April 15, 2009)
================================
			
	Enhancements:
	-------------

	1.	Description:	Approach to code sharing, and image building has been reorganized 
					to reduce the size of each build.

		Impact:		This release file contains only NCSI MFW for the Everest family of chips.
				
					Xinan and Everest source trees will now be built and released separately
					from one another.  The release build will no longer be a chip specific
					image combined with the common image, but will be a single monolithic
					image.  This change will require support from EXDIAG and Everest BOOTCODE.
		
	2.	Description:	Added UMP based raw packet loopback feature to NCSI FW that 
					was not fully ported from UMP.

		Impact:		When feature is enabled in NVRAM, MFW will come up following
					POR with loopback/echo mode enabled.  While in this mode, the
					MFW will accept non NCSI control packets on the UMP RX interface
					and simply send them back out via the UMP TX interface.

					This mode applies to the whole package, not a port or channel.
					Multiple packages can have loopback enabled at once, but this 
					will require all packages have the HW Arb pins connected for 
					correct operation. Each package will sign the loopback packets 
					by depositing a signature in the final data word looped back in 
					the form 0x8874000x where x is the package ID.  This will allow
					a BMC to ID traffic looped back from each package if needed.

					NCSI MFW will exit the loopback mode if ANY NCSI control packet
					with ethertype 0x88F8 is seen on the RMII bus.  Once the mode
					has been terminated it will remain off until the next POR based
					MFW load event.


Version 1.0.6 Feb 2, 2009)
================================
	Fixes:
 	------

	1. 	Problem:	CQ 39414 NCSI/5709: HW malfunction BSOD when running reboot test with iscsi initiator sw.

		Cause:		NCSI initialization exposed an issue where RV2P is placing a packet into an uninitialized context, 
					resulting in BSOD.

		Fix:	   	Work around in MFW by not enabling EMAC block on port reset when driver present.


Version 1.0.5 Jan 13, 2009)
================================
	Fixes:
 	------

	1. 	Problem:	CQ 37800 NCSI/57710: Sending Get Link Status command causes FW to stop
					responding.

		Cause:		Command was not fully implemented in the Everest NCSI FW.

		Fix:	   	Provide full support for the command.

	2.	Problem:	CQ 37830, 57710 AEN reports incorrect value.
		
		Cause:		Using wrong definition.

		Fix:		Use correct definition.

	2.	Problem:	CQ 37876, 57710, no NCSI traffic after iSCSI boot to Win 2k3 image.
		
		Cause:		DMA Ops were failing to complete because UMP block not fully reset after
					NIG reset.

		Fix:		Reset UMP block on NIG reset.


Version 1.0.4 Dec 18, 2008)
================================
	Fixes:
 	------

	1. 	Problem:	CQ 38952 NCSI/5709: LOMs failing to respond to NCSI commands when shared 
					LOM modes are changed.

		Cause:		NCSI FW was not clearing active pkt count when processing channel resets.
					Sometimes this field was left non zero, which in rare situations, caused
					resources to be de allocated twice causing pkt count to go negative and
					stall the egress pipe.

		Fix:	   	Clear the field when processing channel reset.

	2.	Problem:	CQ 38855, cKVM remote console session unexpectedly closes during linux/windows 
					driver load/unload.
	
		Cause:		Duplicate for CQ38952.

	3.	Problem:	CQ 38905, Lose network connection (ncsi to bmc ip and host ip) after trying 
					to open OEM webpage when linux driver is up.
	
		Cause:		Duplicate for CQ38952.


Version 1.0.3 Oct 20, 2008)
================================
	Fixes:
 	------

	1. 	Problem:	CQ 37958 NCSI/5709: Unable to login into iSCSI target when NCSI is 
					enabled on 5709.

		Cause:		NCSI FW was using incorrect index to clear PM filter fields following 
					resets.

		Fix:	   	Correct the index.

	2. 	Problem:	CQ 37374 NCSI/57710-PQA reports Arp packets not being pass through on Everest/NCSI..

		Cause:		everest implementation of the MCP FTQ status bits does not match the 
					original bit definition.

		Fix:	   	pkt qualifications performed when pkt at top of MCP FTQ was pushed into 
					HW lib modules and made more chip specific to overcome incorrect packet 
					filtering based on MCP FTQ status word that was causing ARP pkts to be dropped.

	3. 	Problem:	CQ 37784 NCSI/5709-PQA reports no connection to bmc on OEM platform after 
					connecting last LOM.

		Cause:		Duplicate for CQ 37530 described below.

		Fix:	   	Problem has been resolved by other changes to NCSI FW.  

	4. 	Problem:	CQ 37520 NCSI/5709: PQA reports NCSI traffic stops after running BACS 
					diagnostics.

		Cause:		Port reset is performed after each test within BACS diagnostic as means to 
					"clean up", but NCSI port reset handling code was not resetting all required
					resources.

		Fix:	   	Modify NCSI port reset code to reset all NCSI shared resources as well as 
					port specific ones.

	5. 	Problem:	CQ 37793 NCSI/57710: PQA reports PXE banner takes up to 90 seconds to appear
					when NCSI FW is loaded.

		Cause:		NCSI FW executes in fixed 5ms timeslice that was starving bootcode on PXE load.  

		Fix:	   	Allow NCSI FW to return control to bootcode before completion of full timeslice
					if there are no	event indications to be processed.

	6. 	Problem:	CQ 37804 NCSI/5709: PQA reports that NCSI FW returns incorrect Driver Status 
					value after disabling driver.

		Cause:		Bit definitions were imported from UMP during initial port, and not updated.

		Fix:	   	Corrected bit definitions to be NCSI specific.

	7. 	Problem:	CQ 37530 NCSI/5709: PQA reports that TOE and iSCSI hw key license behavior is 
					incorrect when NCSI FW is enabled.

		Cause:		UMP ARB Control register not programmed correctly for multi LOM configurations.
					Requires correct package ID, ARB timeout, and workaround for XON flowcontrol bug.

		Fix:	   	Modified both Everest and Xinan library modules to ensure register is programmed
					correctly.

	8. 	Problem:	As a follow on to CQ 37530, PQA now reports excessive bootup latency when NCSI FW 
					that includes problem #7 fix is enabled.

		Cause:		Portions of all NCSI modules were redesigned to address problem #2 described above.  
					Code was changed to perform blocking poll on register that should not block, but
					this turned out to be a problem.

		Fix:	   	Reverted code to using method of non blocking polling for UMP Write Control Register.

	Enhancements:
	-------------

	1.	Description:	Integrated Everest NCSI module with latest shared bootcode files.

		Impact:			Everest NCSI FW v1.0.3 requires Everest Bootcode v4.6.2 or later.


Version 1.0.2 Sept 5, 2008)
================================
	Fixes:
 	------

	1. 	Problem:	PQA reports incorrect value used to report OS absent in AEN pkt.

		Cause:		Incorrect definition.

		Fix:	   	Correct the definition to use 0, and not 2, for reporting OS absent.

	2. 	Problem:	CQ 37092-PQA reports latest NCSI FW becomes unresponsive following 
					pkt forwarding event.

		Cause:		Previous change resulted in pkt forwarding code incorrectly accessing
					channel ID.

		Fix:	   	Use correct method for accessing channel ID.  See enhancement below.

	Enhancements:
	-------------

	1.	Description:	Adopt uniform method for Tx Module to access pkt channel ID in
						TX Pkt Desc for all pkt types being sent to the BMC.  Previously, 
						channel Id was accessed	based upon pkt type, which resulted in 
						errors in previous releases.

		Impact:			Command module now stores channel ID in TX Pkt Desc header when
						queuing NCSI AEN and command Response pkts.  TX Module now accesses
						channel ID exclusively from the TX Pkt Desc header for all pkts.		

Version 1.0.1 Aug 28, 2008)
================================
	Fixes:
 	------

	1. 	Problem:	PQA reports no host traffic flows when run with latest NCSI FW.

		Cause:		Compatibility of common module with both Xinan and Everest chips 
				required change to how NCSI FW checks driver load status by storing
				local indicator.  The update if this indicator is done on every 
				FW invocation, but was being performed following the logic that handles 
				the port specific reset events.  Port specific reset handling code
				consults this indicator to determine whether the driver is loaded or
				not, and this caused stale data to be used in setting up the pkt
				forwarding configuration to go to the BMC only.

		Fix:	   	Establish current driver load state prior to handling port resets.

	2. 	Problem:	PQA reports latest NCSI FW becomes unresponsive following AEN events.

		Cause:		Previous change resulted in AEN forwarding code using bad index, which
				created an invalid ptr, which caused a bad memory access which resulted 
				in locking up cpu.

		Fix:	   	Ensure required index is initialized.


Version 1.0.0 Aug 16, 2008)
================================
	Enhancements:
	-------------

	1.	Description:	Beta release of support for Everest 57710 chip.

		Impact:			See below.
		
	2.	Description:	Alpha release of support for Everest 57711 chip.

		Impact:			Enhancements 1 & 2 required a number of changes be made to the common and 
						xlib modules to provide for commonality across all NCSI FW. These changes 
						included the following:
						
						a) Added support for receiving and validating commands without the plus 2 byte 
							alignment, and for sending responses that do not have the plus 2 byte alignment.

						b) Modified common module approach to acquiring L2 stats that are reported to BMC 
							via NCSI command.

						c) Altered common module load point to support Everest Bootcode.

						d) Altered approach to determining driver present status.

	3.	Description:	Modified timeslice calculation code to work correctly.

		Impact:			5ms timeslice is upheld.

	4.	Description:	Temporarily disabled optional checksum support pending update in DMTF.

	5.	Description:	Modified delay calculation code to work correctly.

		Impact:			Microsecond delay calc works correctly.

	6.	Description:	Modified init code to ensure previous state of HW arb is restored following reset.

		Impact:			State of HW arb feature is retained through soft resets.

	7.	Description:	Modified init code to ensure reset type is correctly determined.

		Impact:			FW will now correctly reinit as required following resets.

	8.	Description:	Modified macro used for driver presence status to function per channel.

		Impact:			Driver presence is now evaluated on a per channel basis.


Version 0.5.8 May, 2008)
================================
	Fixes:
 	------

	1. 	Problem:	CQ 35489 Customer reports that Max sized VLAN tagged packet not being forwarded.

		Cause:		NCSI FW was was not including the VLAN tag size in the max pkt size check.

		Fix:	   	Modified code to include +4 bytes in max size if VLAN enabled.	

Version 0.5.7 May 6, 2008)
================================

	Fixes:
 	------

	1. 	Problem:	Customer reports that multiLOM system ceases to pass NCSI traffic following a reset.

		Cause:		NCSI FW was zeroing out the default ARB Master timeout that is required to ensure
				correct ARB Master selection.

		Fix:	   	Modified code to not overwrite default value.	

	Enhancements:
	-------------

	1.	Description:	Added manual statistics accumulation logic to Everest NCSI HW module. Modified
				Xinan HW Module to maintain consistency in the common module.   

		Impact:		Now the common module uses a routine "NcsiCmdLib_Get_Updated_Statistics" with
				a common interface, that is exported by both HW modules.


Version 0.5.0 (Apr 29, 2008)
================================

    	Fixes:
  	------

	1. 	Problem:	CQ34757.  Packets were being lost on second port.

		Cause:		NCSI FW was using faulty OS Present MACRO to determine whether to enable mgmt pkt forwarding
				via the RX Parser allowing it to mistakenly enable this on the second port while the driver
				was loaded.

		Fix:	   	Fixed Driver loaded state macro.	

	2.	Problem:	PQA reports loss of NCSI connection after running stress test.

		Cause:		Egress pkt completion code was clearing "RX DMA IN PROGRESS" flag just before entering 
				routine to enqueue TAS FTQ record.  However, when the host is also stressing egress traffic,
				this TAS FTQ enqueue operation my be held off, and remain pending.  There is a flag to note
				this condition, but the rx in progress flag gates these attempts, so the operation could 
				never complete once that flag was cleared.

		Fix:		Clear all flags after TAS FTQ operation completes.

	3.	Problem:	CQ34927.PQA reports that host chariot traffic stalls when running to both host and NCSI.

		Cause:		NCSI firmware was overwritting the TPBUF address used to arm the DMA operations causing 
				mgmt pkts to be written into the host's portion of TPBUF.  This resulted from an intentional
				change that was not implemented completely.

		Fix:		Complete the implementation of the change returning status of TPBUF allocation operation.

	4.	Problem:	CQ34266.  iSCSI boot failed to get IP for second port when NCSI is running.

		Cause:		The original problem reported here was caused by #1 above.  However, resolving that issue
				exposed another issue that prevented both ports from getting IP during iSCSI boot.  In 
				essence, a silent HW interrupt (port specific reset) was occurring after the mgmt FW had
				started trying to initialize the TAS data pipe, and this prevented the HW event notification
				that the FW polls on from ever occurring because the HW blocks were then all disabled.  This 
				caused the FW to loop forever.

		Fix:		The fix is to note that the TAS init has failed, ignore it, and return control to bootcode.
				Because this was an interrupt, the bootcode will handle it once it can run, and will then
				report to the FW that a port specific reset occurred, thereby causing mgmt FW to initialize
				once more.  FW also does so if its error flag is still set.

	5.	Problem:	Customer developing NCSI reported that NCSI FW was not working with their RMII based BMC.

		Cause:		Apparently, the chip was browning out during Vaux because all chip blocks were being enabled 
				because mgmt FW was seeing false indications of PCI main power being present while in Vaux.

		Fix:		The real problem is in the customer's HW, but we were able to help them get past this by
				disabling a line of code in the mgmt FW init that enables all chip blocks if PCI main power
				is present.

	6.	Problem:	PQA reports that the Set Link command will not allow the link to be put back into AN mode
				after being forced from the advertised settings.

		Cause:		The bootcode is not fully honoring the set link request it is receiving from mgmt FW.

		Fix:		Temporary workaround is to set the "phy reset" bit in the netlink version of the set link 
				request, and this will return the phy to its default settings.

	Enhancements:
	-------------

	1.	Description:	Modified the set link command processing to allow support of common bootcode for UMP 
				and NCSI code on Xinan.

		Impact:		FW must map the NCSI set link config word to the netlink version supported by BC.

	2.	Description:	Restored NCSI token to version string as requested.

		Impact:		Tools that use the mgmt fw version string can now expect the "NCSI" token.

	3.	Description:	Altered the time at which the rx mgmt pkt cntl is enabled from doing so by default at
				load to doing so only when the channel is enabled by the BMC.

		Impact:		In OS absent, enabling by default meant that the Rx Parser was filtering and forwarding 
				pkts even if the channel was disabled.  Now it will not filter pkts until the BMC enables 
				the channel.

	4.	Description:	Added some additional error state and pkt statistics recording for internal use.

		Impact:		FW maintains state and stats for conditions not covered by existing NCSI statistics.

	5.	Description:	Fixed problem with determining cold verses warm and channel verses global reset status, 
				and associated init issues.

		Impact:		FW correctly determines the type of each reset that caused the most recent reload.

	6.	Description:	Modified controller statistics retrieval code to only return stats in OS present.  This
				is because the HW cannot be assured to work as required unless the driver is loaded.

		Impact:		0xFFFFFFFF will be returned for all stat values when Get I/F statistics command is 
				sent while OS Absent. 

	7.	Description:	Eliminated unneeded error handling code.
		
		Impact:		None.															   


Version 0.4.6 (Mar 18, 2008)
================================

	1.	Problem:	Egress packet traffic pass through halts.
	
		Cause:		Test packets with random pattern are initially matched as cmds because of 
					0x88f8 	value in specific location.  When found to not be commands, packets 
					were not handled correctly leaving fw in invalid state and unable to pass
					additional traffic.

		Fix:		Better discriminate potential command packets on rx, and clear state when
					dropped.

	2.	Problem:	Egress packet traffic pass through halts.

		Cause:		Unable to allocate egress buffer resources.

		Fix:		Modify buffer deallocation logic to handle specific case.


Version 0.4.5 (Mar 10, 2008)
================================

    Fixes:
    ------

	1.	Problem:	Pass through fails to continue after driver unload.
	
		Cause:		Loss of state on driver load and unload caused by extraneous code.

		Fix:		Remove code.

Version 0.4.4 (Mar 7, 2008)
================================

    Fixes:
    ------

	1. 	Problem:	Get I/F statistics command intermittently failing
		
		Cause:		Incorrect use of HC in preOS state.

		Fix:		Change approach used to force a coalesing of stats.

	2.	Problem:	Package selection commands rejected
	
		Cause:		Invalid instance id check.

		Fix:		Include package selection commands in instance ID check.


Version 0.4.3 (Feb 15, 2008)
================================

    Fixes:
    ------
    1.  Problem: 	Valid egress packets to get dropped when channel enabled.

        Cause:   	Same MAC address was programmed on both channels with the first 
			disabled and second enabled.  The order in which channel states 
			were examined during SA filtering caused valid egress packets to 
			be dropped on the disable channel instead of passing on enabled 
			channel.

        Fix:     	If source MAC address match found on disabled channel, continue to
			check remaining channels for match on an enabled channel before 
			dropping the packet.


Version 0.4.1 (Feb 8, 2008)
================================

    Fixes:
    ------
    1.  Problem: 	Reason code 0x9 returned in response to sending Set Flow Control 
			command with both enable bits set. 

        Cause:   	Incorrect bit mask used.

        Fix:     	Use correct bit mask.


Version 0.4.0 (Jan 29, 2008)
================================

- OEM command (GET NCSI parameters) - problem: no response 
- SET MAC - problem: with mac of zeros returned incorrect reason code
- RESET CHANNEL - problem: incorrect payload length
- OEM command (MODIFY HOST MAC) - problem: no response
- PACKAGE SELECT/DESELECT: problem: no response with Ch.ID = 0x1f
- PACKAGE SELECT/DESELECT: problem: package select followed by package deselect returns response/reason 0x01,0x01
- DISABLE CHANNEL - problem: incorrect payload length
- GET NCSI PARAMETERS - problem: no response
- SET LINK - problem: Set link to AUTO returns incorrect response/reason code
- BROADCAST FILTERING: problem: dhcp client = no pass-through; dhcp server = All broadcast pass-through; netbios = no pass-through
- GET PARAMETERS: problem: in reponose packet, 2 extra bytes before mac address


Version 0.3.0 (Sept 10, 2007)
================================

Initial Beta Release.


